The present invention relates generally to software testing, and more specifically, to test case generation.
Software testing involves the execution of a software component or a system component to evaluate one or more properties of interest. In general, these properties indicate the extent to which the component or system under test meets the requirements that guided its design and development; responds correctly to all kinds of inputs; performs its functions within an acceptable timeframe; is sufficiently usable; can be installed and run in its intended environments; and achieves the general result its stakeholders desire.
All software testing uses some type of strategy to select tests that are feasible for the available time and resources. As a result, software testing typically (but not exclusively) attempts to execute a program or application with the intent of finding software bugs (errors or other defects). The job of testing is an iterative process in that when one bug is detected and corrected, other, deeper already present bugs can be illuminated or new ones can be created. Software testing can provide objective, independent information about the quality of software and risk of its failure.